Q. 고차 함수와 curry 함수에 대해서 설명해 주세요.
🧑🏻💻 Answer.
✅ 고차 함수 정의
- 고차 함수는 함수를 전달 인자(parameter)로 전달받거나 함수를 반환하는 함수를 의미합니다. 고차 함수의 일반적인 예로는 map, filter, reduce 등이 있습니다. 고차 함수는 외부 상태 변경이나 가변(mutable) 데이터를 피하고 불변성(Immutability)을 지향하는 함수형 프로그래밍에 기반을 두고 있습니다.
✅ 고차 함수와 curry 함수
이때 함수를 전달 인자로 전달받는 함수를 콜백 함수라 하고, 함수를 반환하는 함수를 curry 함수라고 합니다.
따라서 고차 함수는 커리 함수를 포함하는 개념입니다.
커리 함수를 활용하면, 인자(parameter) 일부를 전달하여 새로운 함수를 동적으로 생성할 수 있습니다. 이를 '커링'이라 합니다. 더 정확히 말하면 여러 개의 인수를 받는 함수를 하나의 인수를 받는 함수 체인으로 변환하는 기법입니다. 이를 통해 중복 인자를 피할 수 있고 코드의 재사용성을 높일 수 있습니다.
✅ curry 함수 예시
// 커리 함수 예제
function add(x) {
return function (y) {
return x + y;
};
}
const add5 = add(5); // add 함수의 첫 번째 인수를 5로 설정
console.log(add5(3)); // 8
console.log(add5(7)); // 12